In a time-triggered system, a group of nodes synchronize their access to common resources and/or coordinate distributed activities based on time. Each node includes a clock (typically implemented using an oscillator such as a quartz-based oscillator) that is used for such synchronization. For example, in one type of time-triggered system, the clock in each of the nodes of the system is used to synchronize that node's access to a common communication medium.
Typically, a given set of clocks (also referred to here as an “ensemble”) are synchronized to one another to build a synchronized global time base by adjusting the state and/or rate of each clock in the ensemble. A commonly used parameter to quantify the quality of clock synchronization is the precision, which defines the maximum difference between the states of each pair of clocks in the ensemble. The precision depends on several parameters, such as the synchronization interval and the maximum clock drift. While the synchronization interval is often determined by environmental and communication systems parameters, the drift rate of clocks (also referred to as “clock skew”) depends on several parameters, such as environmental effects (for example, gravity forces or temperature), manufacturing tolerances, and aging effects. As a consequence of these cumulative effects, clocks have two different, main types of drift rates. One that remains relatively constant in the short-term is referred to here as the “systematic part” of the clock drift and the other is referred to here as the “stochastic part” of the clock drift.
Typically, clock synchronization in such systems has addressed achieving fault-tolerant agreement of the states of the clocks in an ensemble during operation and correcting the systematic part of the clock drift of the clocks in an ensemble (for example, before deploying such a system and/or during operation). Such synchronization of clock state and correcting for the systematic part of the clock drift typically involve measuring the difference between the states of two clocks in a time-triggered system or measuring the difference between the actual and expected arrival times of a message in a periodic broadcast system. This is referred to as “time-difference measurement” and the measured values are referred to as “time-difference measurement values.”
In some approaches to clock synchronization, clock rate correction for the purposes of establishing a global time base is made, while the system is deployed, by making the same type of adjustment that is used to adjust clock state (typically, by making a virtual-clock offset adjustment). For example, time-difference measurements are made for two frames of data that are received at a given node while no other clock corrections are made (other than adjustments made for the purposes of clock-rate correction based on measurements made during previous periods). The two time-difference measurements are then used to calculate the clock drift. As noted above, this calculated clock drift value is used to emulate clock rate correction for purposes of establishing a global time base by making a virtual-clock offset adjustment. Also, in such an approach, the actual clock rate of the hardware clock that is used by each node's transceiver is not changed (that is, the hardware clock rate is fixed). As a consequence of these two points, any virtual-clock offset adjustments that are to be made for clock-state correction purposes cannot be applied during the period when the multiple time-difference measurements are being made for purposes of calculating a clock-rate adjustment. This period is also referred to as a “blockout period” and is a period when clock-rate and clock-state adjustments cannot be simultaneously made. One example of such a scheme is described in WO 03/010611.